<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP, FlexibleContexts, Safe #-}</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- Module      :  Text.Parsec.Char</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Copyright   :  (c) Daan Leijen 1999-2001, (c) Paolo Martini 2007</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- License     :  BSD-style (see the LICENSE file)</span><span>
</span><span id="line-8"></span><span class="hs-comment">--</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- Maintainer  :  derek.a.elkins@gmail.com</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Stability   :  provisional</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-12"></span><span class="hs-comment">--</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- Commonly used character parsers.</span><span>
</span><span id="line-14"></span><span class="hs-comment">--</span><span>
</span><span id="line-15"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-16"></span><span>
</span><span id="line-17"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Text.Parsec.Char</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-18"></span><span>
</span><span id="line-19"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span>
</span><span id="line-20"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Text.Parsec.Pos.html"><span class="hs-identifier">Text.Parsec.Pos</span></a></span><span>
</span><span id="line-21"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html"><span class="hs-identifier">Text.Parsec.Prim</span></a></span><span class="hs-cpp">
#if !(MIN_VERSION_base(4,8,0))
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Control.Applicative</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-operator">*&gt;</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- | @oneOf cs@ succeeds if the current character is in the supplied</span><span>
</span><span id="line-27"></span><span class="hs-comment">-- list of characters @cs@. Returns the parsed character. See also</span><span>
</span><span id="line-28"></span><span class="hs-comment">-- 'satisfy'.</span><span>
</span><span id="line-29"></span><span class="hs-comment">--</span><span>
</span><span id="line-30"></span><span class="hs-comment">-- &gt;   vowel  = oneOf &quot;aeiou&quot;</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span id="local-6989586621679060846"><span id="local-6989586621679060848"><span id="local-6989586621679060849"><span class="annot"><a href="Text.Parsec.Char.html#oneOf"><span class="hs-identifier hs-type">oneOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060849"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060848"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060849"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060846"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060848"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-33"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#oneOf"><span class="hs-pragma hs-type">oneOf</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-34"></span><span id="oneOf"><span class="annot"><span class="annottext">oneOf :: forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
[Char] -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#oneOf"><span class="hs-identifier hs-var hs-var">oneOf</span></a></span></span><span> </span><span id="local-6989586621679060729"><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060729"><span class="hs-identifier hs-var">cs</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679060727"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060727"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Char -&gt; [Char] -&gt; Bool
forall (t :: * -&gt; *) a. (Foldable t, Eq a) =&gt; a -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#elem"><span class="hs-identifier hs-var">elem</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060727"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060729"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span class="hs-comment">-- | As the dual of 'oneOf', @noneOf cs@ succeeds if the current</span><span>
</span><span id="line-37"></span><span class="hs-comment">-- character /not/ in the supplied list of characters @cs@. Returns the</span><span>
</span><span id="line-38"></span><span class="hs-comment">-- parsed character.</span><span>
</span><span id="line-39"></span><span class="hs-comment">--</span><span>
</span><span id="line-40"></span><span class="hs-comment">-- &gt;  consonant = noneOf &quot;aeiou&quot;</span><span>
</span><span id="line-41"></span><span>
</span><span id="line-42"></span><span id="local-6989586621679060723"><span id="local-6989586621679060724"><span id="local-6989586621679060725"><span class="annot"><a href="Text.Parsec.Char.html#noneOf"><span class="hs-identifier hs-type">noneOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060725"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060724"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060725"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060723"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060724"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-43"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#noneOf"><span class="hs-pragma hs-type">noneOf</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-44"></span><span id="noneOf"><span class="annot"><span class="annottext">noneOf :: forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
[Char] -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#noneOf"><span class="hs-identifier hs-var hs-var">noneOf</span></a></span></span><span> </span><span id="local-6989586621679060717"><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060717"><span class="hs-identifier hs-var">cs</span></a></span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679060716"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060716"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; [Char] -&gt; Bool
forall (t :: * -&gt; *) a. (Foldable t, Eq a) =&gt; a -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#elem"><span class="hs-identifier hs-var">elem</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060716"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060717"><span class="hs-identifier hs-var">cs</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-45"></span><span>
</span><span id="line-46"></span><span class="hs-comment">-- | Skips /zero/ or more white space characters. See also 'skipMany'.</span><span>
</span><span id="line-47"></span><span>
</span><span id="line-48"></span><span id="local-6989586621679060831"><span id="local-6989586621679060832"><span id="local-6989586621679060833"><span class="annot"><a href="Text.Parsec.Char.html#spaces"><span class="hs-identifier hs-type">spaces</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060833"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060832"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060833"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060831"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060832"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-49"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#spaces"><span class="hs-pragma hs-type">spaces</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-50"></span><span id="spaces"><span class="annot"><span class="annottext">spaces :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m ()
</span><a href="Text.Parsec.Char.html#spaces"><span class="hs-identifier hs-var hs-var">spaces</span></a></span></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; ParsecT s u m ()
forall s u (m :: * -&gt; *) a. ParsecT s u m a -&gt; ParsecT s u m ()
</span><a href="Text.Parsec.Prim.html#skipMany"><span class="hs-identifier hs-var">skipMany</span></a></span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char
forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#space"><span class="hs-identifier hs-var">space</span></a></span><span>        </span><span class="annot"><span class="annottext">ParsecT s u m () -&gt; [Char] -&gt; ParsecT s u m ()
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;white space&quot;</span></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="hs-comment">-- | Parses a white space character (any character which satisfies 'isSpace')</span><span>
</span><span id="line-53"></span><span class="hs-comment">-- Returns the parsed character.</span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span id="local-6989586621679060821"><span id="local-6989586621679060822"><span id="local-6989586621679060823"><span class="annot"><a href="Text.Parsec.Char.html#space"><span class="hs-identifier hs-type">space</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060823"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060822"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060823"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060821"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060822"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-56"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#space"><span class="hs-pragma hs-type">space</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-57"></span><span id="space"><span class="annot"><span class="annottext">space :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#space"><span class="hs-identifier hs-var hs-var">space</span></a></span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isSpace"><span class="hs-identifier hs-var">isSpace</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;space&quot;</span></span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="hs-comment">-- | Parses a newline character (\'\\n\'). Returns a newline character.</span><span>
</span><span id="line-60"></span><span>
</span><span id="line-61"></span><span id="local-6989586621679060703"><span id="local-6989586621679060704"><span id="local-6989586621679060705"><span class="annot"><a href="Text.Parsec.Char.html#newline"><span class="hs-identifier hs-type">newline</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060705"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060704"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060705"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060703"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060704"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-62"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#newline"><span class="hs-pragma hs-type">newline</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-63"></span><span id="newline"><span class="annot"><span class="annottext">newline :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#newline"><span class="hs-identifier hs-var hs-var">newline</span></a></span></span><span>             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
Char -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span>             </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;lf new-line&quot;</span></span><span>
</span><span id="line-64"></span><span>
</span><span id="line-65"></span><span class="hs-comment">-- | Parses a carriage return character (\'\\r\') followed by a newline character (\'\\n\').</span><span>
</span><span id="line-66"></span><span class="hs-comment">-- Returns a newline character.</span><span>
</span><span id="line-67"></span><span>
</span><span id="line-68"></span><span id="local-6989586621679060696"><span id="local-6989586621679060697"><span id="local-6989586621679060698"><span class="annot"><a href="Text.Parsec.Char.html#crlf"><span class="hs-identifier hs-type">crlf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060698"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060697"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060698"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060696"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060697"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-69"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#crlf"><span class="hs-pragma hs-type">crlf</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-70"></span><span id="crlf"><span class="annot"><span class="annottext">crlf :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#crlf"><span class="hs-identifier hs-var hs-var">crlf</span></a></span></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
Char -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\r'</span></span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; ParsecT s u m Char -&gt; ParsecT s u m Char
forall (f :: * -&gt; *) a b. Applicative f =&gt; f a -&gt; f b -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%2A%3E"><span class="hs-operator hs-var">*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
Char -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;crlf new-line&quot;</span></span><span>
</span><span id="line-71"></span><span>
</span><span id="line-72"></span><span class="hs-comment">-- | Parses a CRLF (see 'crlf') or LF (see 'newline') end-of-line.</span><span>
</span><span id="line-73"></span><span class="hs-comment">-- Returns a newline character (\'\\n\').</span><span>
</span><span id="line-74"></span><span class="hs-comment">--</span><span>
</span><span id="line-75"></span><span class="hs-comment">-- &gt; endOfLine = newline &lt;|&gt; crlf</span><span>
</span><span id="line-76"></span><span class="hs-comment">--</span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span id="local-6989586621679060687"><span id="local-6989586621679060688"><span id="local-6989586621679060689"><span class="annot"><a href="Text.Parsec.Char.html#endOfLine"><span class="hs-identifier hs-type">endOfLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060689"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060688"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060689"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060687"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060688"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-79"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#endOfLine"><span class="hs-pragma hs-type">endOfLine</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-80"></span><span id="endOfLine"><span class="annot"><span class="annottext">endOfLine :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#endOfLine"><span class="hs-identifier hs-var hs-var">endOfLine</span></a></span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char
forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#newline"><span class="hs-identifier hs-var">newline</span></a></span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; ParsecT s u m Char -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; ParsecT s u m a -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%7C%3E"><span class="hs-operator hs-var">&lt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">ParsecT s u m Char
forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#crlf"><span class="hs-identifier hs-var">crlf</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;new-line&quot;</span></span><span>
</span><span id="line-81"></span><span>
</span><span id="line-82"></span><span class="hs-comment">-- | Parses a tab character (\'\\t\'). Returns a tab character.</span><span>
</span><span id="line-83"></span><span>
</span><span id="line-84"></span><span id="local-6989586621679060679"><span id="local-6989586621679060680"><span id="local-6989586621679060681"><span class="annot"><a href="Text.Parsec.Char.html#tab"><span class="hs-identifier hs-type">tab</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060681"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060680"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060681"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060679"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060680"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-85"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#tab"><span class="hs-pragma hs-type">tab</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-86"></span><span id="tab"><span class="annot"><span class="annottext">tab :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#tab"><span class="hs-identifier hs-var hs-var">tab</span></a></span></span><span>                 </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
Char -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span>             </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;tab&quot;</span></span><span>
</span><span id="line-87"></span><span>
</span><span id="line-88"></span><span class="hs-comment">-- | Parses an upper case letter (according to 'isUpper').</span><span>
</span><span id="line-89"></span><span class="hs-comment">-- Returns the parsed character.</span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span id="local-6989586621679060673"><span id="local-6989586621679060674"><span id="local-6989586621679060675"><span class="annot"><a href="Text.Parsec.Char.html#upper"><span class="hs-identifier hs-type">upper</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060675"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060674"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060675"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060673"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060674"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-92"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#upper"><span class="hs-pragma hs-type">upper</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-93"></span><span id="upper"><span class="annot"><span class="annottext">upper :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#upper"><span class="hs-identifier hs-var hs-var">upper</span></a></span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isUpper"><span class="hs-identifier hs-var">isUpper</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;uppercase letter&quot;</span></span><span>
</span><span id="line-94"></span><span>
</span><span id="line-95"></span><span class="hs-comment">-- | Parses a lower case character (according to 'isLower').</span><span>
</span><span id="line-96"></span><span class="hs-comment">-- Returns the parsed character.</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span id="local-6989586621679060666"><span id="local-6989586621679060667"><span id="local-6989586621679060668"><span class="annot"><a href="Text.Parsec.Char.html#lower"><span class="hs-identifier hs-type">lower</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060668"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060667"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060668"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060666"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060667"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-99"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#lower"><span class="hs-pragma hs-type">lower</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-100"></span><span id="lower"><span class="annot"><span class="annottext">lower :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#lower"><span class="hs-identifier hs-var hs-var">lower</span></a></span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isLower"><span class="hs-identifier hs-var">isLower</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;lowercase letter&quot;</span></span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">-- | Parses a alphabetic or numeric Unicode characters</span><span>
</span><span id="line-103"></span><span class="hs-comment">-- according to 'isAlphaNum'. Returns the parsed character.</span><span>
</span><span id="line-104"></span><span class="hs-comment">--</span><span>
</span><span id="line-105"></span><span class="hs-comment">-- Note that numeric digits outside the ASCII range (such as arabic-indic digits like e.g. \&quot;&#1636;\&quot; or @U+0664@),</span><span>
</span><span id="line-106"></span><span class="hs-comment">-- as well as numeric characters which aren't digits, are parsed by this function</span><span>
</span><span id="line-107"></span><span class="hs-comment">-- but not by 'digit'.</span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span id="local-6989586621679060659"><span id="local-6989586621679060660"><span id="local-6989586621679060661"><span class="annot"><a href="Text.Parsec.Char.html#alphaNum"><span class="hs-identifier hs-type">alphaNum</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060661"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060660"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060661"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060659"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060660"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span></span></span></span><span>
</span><span id="line-110"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#alphaNum"><span class="hs-pragma hs-type">alphaNum</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-111"></span><span id="alphaNum"><span class="annot"><span class="annottext">alphaNum :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#alphaNum"><span class="hs-identifier hs-var hs-var">alphaNum</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAlphaNum"><span class="hs-identifier hs-var">isAlphaNum</span></a></span><span>    </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;letter or digit&quot;</span></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span class="hs-comment">-- | Parses an alphabetic Unicode characters (lower-case, upper-case and title-case letters,</span><span>
</span><span id="line-114"></span><span class="hs-comment">-- plus letters of caseless scripts and modifiers letters according to 'isAlpha').</span><span>
</span><span id="line-115"></span><span class="hs-comment">-- Returns the parsed character.</span><span>
</span><span id="line-116"></span><span>
</span><span id="line-117"></span><span id="local-6989586621679060652"><span id="local-6989586621679060653"><span id="local-6989586621679060654"><span class="annot"><a href="Text.Parsec.Char.html#letter"><span class="hs-identifier hs-type">letter</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060654"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060653"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060654"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060652"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060653"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-118"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#letter"><span class="hs-pragma hs-type">letter</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-119"></span><span id="letter"><span class="annot"><span class="annottext">letter :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#letter"><span class="hs-identifier hs-var hs-var">letter</span></a></span></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAlpha"><span class="hs-identifier hs-var">isAlpha</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;letter&quot;</span></span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span class="hs-comment">-- | Parses an ASCII digit. Returns the parsed character.</span><span>
</span><span id="line-122"></span><span>
</span><span id="line-123"></span><span id="local-6989586621679060645"><span id="local-6989586621679060646"><span id="local-6989586621679060647"><span class="annot"><a href="Text.Parsec.Char.html#digit"><span class="hs-identifier hs-type">digit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060647"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060646"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060647"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060645"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060646"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-124"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#digit"><span class="hs-pragma hs-type">digit</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-125"></span><span id="digit"><span class="annot"><span class="annottext">digit :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#digit"><span class="hs-identifier hs-var hs-var">digit</span></a></span></span><span>               </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isDigit"><span class="hs-identifier hs-var">isDigit</span></a></span><span>       </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;digit&quot;</span></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span class="hs-comment">-- | Parses a hexadecimal digit (a digit or a letter between \'a\' and</span><span>
</span><span id="line-128"></span><span class="hs-comment">-- \'f\' or \'A\' and \'F\'). Returns the parsed character.</span><span>
</span><span id="line-129"></span><span>
</span><span id="line-130"></span><span id="local-6989586621679060638"><span id="local-6989586621679060639"><span id="local-6989586621679060640"><span class="annot"><a href="Text.Parsec.Char.html#hexDigit"><span class="hs-identifier hs-type">hexDigit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060640"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060639"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060640"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060638"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060639"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-131"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#hexDigit"><span class="hs-pragma hs-type">hexDigit</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-132"></span><span id="hexDigit"><span class="annot"><span class="annottext">hexDigit :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#hexDigit"><span class="hs-identifier hs-var hs-var">hexDigit</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isHexDigit"><span class="hs-identifier hs-var">isHexDigit</span></a></span><span>    </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;hexadecimal digit&quot;</span></span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="hs-comment">-- | Parses an octal digit (a character between \'0\' and \'7\'). Returns</span><span>
</span><span id="line-135"></span><span class="hs-comment">-- the parsed character.</span><span>
</span><span id="line-136"></span><span>
</span><span id="line-137"></span><span id="local-6989586621679060631"><span id="local-6989586621679060632"><span id="local-6989586621679060633"><span class="annot"><a href="Text.Parsec.Char.html#octDigit"><span class="hs-identifier hs-type">octDigit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060633"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060632"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060633"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060631"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060632"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-138"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#octDigit"><span class="hs-pragma hs-type">octDigit</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-139"></span><span id="octDigit"><span class="annot"><span class="annottext">octDigit :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#octDigit"><span class="hs-identifier hs-var hs-var">octDigit</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isOctDigit"><span class="hs-identifier hs-var">isOctDigit</span></a></span><span>    </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;octal digit&quot;</span></span><span>
</span><span id="line-140"></span><span>
</span><span id="line-141"></span><span class="hs-comment">-- | @char c@ parses a single character @c@. Returns the parsed</span><span>
</span><span id="line-142"></span><span class="hs-comment">-- character (i.e. @c@).</span><span>
</span><span id="line-143"></span><span class="hs-comment">--</span><span>
</span><span id="line-144"></span><span class="hs-comment">-- &gt;  semiColon  = char ';'</span><span>
</span><span id="line-145"></span><span>
</span><span id="line-146"></span><span id="local-6989586621679060808"><span id="local-6989586621679060809"><span id="local-6989586621679060810"><span class="annot"><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-type">char</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060810"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060809"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060810"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060808"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060809"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-147"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#char"><span class="hs-pragma hs-type">char</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-148"></span><span id="char"><span class="annot"><span class="annottext">char :: forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
Char -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#char"><span class="hs-identifier hs-var hs-var">char</span></a></span></span><span> </span><span id="local-6989586621679060619"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060619"><span class="hs-identifier hs-var">c</span></a></span></span><span>              </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060619"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>  </span><span class="annot"><span class="annottext">ParsecT s u m Char -&gt; [Char] -&gt; ParsecT s u m Char
forall s u (m :: * -&gt; *) a.
ParsecT s u m a -&gt; [Char] -&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#%3C%3F%3E"><span class="hs-operator hs-var">&lt;?&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[Char] -&gt; [Char]
forall a. Show a =&gt; a -&gt; [Char]
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060619"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-149"></span><span>
</span><span id="line-150"></span><span class="hs-comment">-- | This parser succeeds for any character. Returns the parsed character.</span><span>
</span><span id="line-151"></span><span>
</span><span id="line-152"></span><span id="local-6989586621679060615"><span id="local-6989586621679060616"><span id="local-6989586621679060617"><span class="annot"><a href="Text.Parsec.Char.html#anyChar"><span class="hs-identifier hs-type">anyChar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060617"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060616"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060617"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060615"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060616"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-153"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#anyChar"><span class="hs-pragma hs-type">anyChar</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-154"></span><span id="anyChar"><span class="annot"><span class="annottext">anyChar :: forall s (m :: * -&gt; *) u. Stream s m Char =&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#anyChar"><span class="hs-identifier hs-var hs-var">anyChar</span></a></span></span><span>             </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var">satisfy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Char -&gt; Bool
forall a b. a -&gt; b -&gt; a
</span><a href="../../base/src/GHC.Base.html#const"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span class="hs-special">)</span><span>
</span><span id="line-155"></span><span>
</span><span id="line-156"></span><span class="hs-comment">-- | The parser @satisfy f@ succeeds for any character for which the</span><span>
</span><span id="line-157"></span><span class="hs-comment">-- supplied function @f@ returns 'True'. Returns the character that is</span><span>
</span><span id="line-158"></span><span class="hs-comment">-- actually parsed.</span><span>
</span><span id="line-159"></span><span>
</span><span id="line-160"></span><span class="hs-comment">-- &gt;  digit     = satisfy isDigit</span><span>
</span><span id="line-161"></span><span class="hs-comment">-- &gt;  oneOf cs  = satisfy (\c -&gt; c `elem` cs)</span><span>
</span><span id="line-162"></span><span>
</span><span id="line-163"></span><span id="local-6989586621679060839"><span id="local-6989586621679060840"><span id="local-6989586621679060841"><span class="annot"><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-type">satisfy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060841"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060840"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060841"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060839"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060840"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span></span></span></span><span>
</span><span id="line-164"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#satisfy"><span class="hs-pragma hs-type">satisfy</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-165"></span><span id="satisfy"><span class="annot"><span class="annottext">satisfy :: forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
(Char -&gt; Bool) -&gt; ParsecT s u m Char
</span><a href="Text.Parsec.Char.html#satisfy"><span class="hs-identifier hs-var hs-var">satisfy</span></a></span></span><span> </span><span id="local-6989586621679060606"><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="#local-6989586621679060606"><span class="hs-identifier hs-var">f</span></a></span></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; [Char])
-&gt; (SourcePos -&gt; Char -&gt; s -&gt; SourcePos)
-&gt; (Char -&gt; Maybe Char)
-&gt; ParsecT s u m Char
forall s (m :: * -&gt; *) t a u.
Stream s m t =&gt;
(t -&gt; [Char])
-&gt; (SourcePos -&gt; t -&gt; s -&gt; SourcePos)
-&gt; (t -&gt; Maybe a)
-&gt; ParsecT s u m a
</span><a href="Text.Parsec.Prim.html#tokenPrim"><span class="hs-identifier hs-var">tokenPrim</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679060604"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060604"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[Char] -&gt; [Char]
forall a. Show a =&gt; a -&gt; [Char]
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060604"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span>                                </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679060603"><span class="annot"><span class="annottext">SourcePos
</span><a href="#local-6989586621679060603"><span class="hs-identifier hs-var">pos</span></a></span></span><span> </span><span id="local-6989586621679060602"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060602"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679060601"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679060601"><span class="hs-identifier hs-var">_cs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SourcePos -&gt; Char -&gt; SourcePos
</span><a href="Text.Parsec.Pos.html#updatePosChar"><span class="hs-identifier hs-var">updatePosChar</span></a></span><span> </span><span class="annot"><span class="annottext">SourcePos
</span><a href="#local-6989586621679060603"><span class="hs-identifier hs-var">pos</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060602"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-167"></span><span>                                </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679060599"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060599"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="#local-6989586621679060606"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060599"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Maybe Char
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679060599"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Maybe Char
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span class="hs-comment">-- | @string s@ parses a sequence of characters given by @s@. Returns</span><span>
</span><span id="line-170"></span><span class="hs-comment">-- the parsed string (i.e. @s@).</span><span>
</span><span id="line-171"></span><span class="hs-comment">--</span><span>
</span><span id="line-172"></span><span class="hs-comment">-- &gt;  divOrMod    =   string &quot;div&quot;</span><span>
</span><span id="line-173"></span><span class="hs-comment">-- &gt;              &lt;|&gt; string &quot;mod&quot;</span><span>
</span><span id="line-174"></span><span>
</span><span id="line-175"></span><span id="local-6989586621679060744"><span id="local-6989586621679060745"><span id="local-6989586621679060746"><span class="annot"><a href="Text.Parsec.Char.html#string"><span class="hs-identifier hs-type">string</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Text.Parsec.Prim.html#Stream"><span class="hs-identifier hs-type">Stream</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060746"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060745"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Text.Parsec.Prim.html#ParsecT"><span class="hs-identifier hs-type">ParsecT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060746"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060744"><span class="hs-identifier hs-type">u</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679060745"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span></span></span></span><span>
</span><span id="line-176"></span><span class="hs-pragma">{-# INLINABLE</span><span> </span><span class="annot"><a href="Text.Parsec.Char.html#string"><span class="hs-pragma hs-type">string</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-177"></span><span id="string"><span class="annot"><span class="annottext">string :: forall s (m :: * -&gt; *) u.
Stream s m Char =&gt;
[Char] -&gt; ParsecT s u m [Char]
</span><a href="Text.Parsec.Char.html#string"><span class="hs-identifier hs-var hs-var">string</span></a></span></span><span> </span><span id="local-6989586621679060592"><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060592"><span class="hs-identifier hs-var">s</span></a></span></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([Char] -&gt; [Char])
-&gt; (SourcePos -&gt; [Char] -&gt; SourcePos)
-&gt; [Char]
-&gt; ParsecT s u m [Char]
forall s (m :: * -&gt; *) t u.
(Stream s m t, Eq t) =&gt;
([t] -&gt; [Char])
-&gt; (SourcePos -&gt; [t] -&gt; SourcePos) -&gt; [t] -&gt; ParsecT s u m [t]
</span><a href="Text.Parsec.Prim.html#tokens"><span class="hs-identifier hs-var">tokens</span></a></span><span> </span><span class="annot"><span class="annottext">[Char] -&gt; [Char]
forall a. Show a =&gt; a -&gt; [Char]
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">SourcePos -&gt; [Char] -&gt; SourcePos
</span><a href="Text.Parsec.Pos.html#updatePosString"><span class="hs-identifier hs-var">updatePosString</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><a href="#local-6989586621679060592"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-178"></span></pre></body></html>